The contents of Japanese Patent Application No.261,729/99, filed Sept. 16, 1999 in Japan are incorporated herein by reference.
This invention relates to a data exchanging system, which is capable of quickly exchanging and sharing a file between plural computers running different types of operating systems (in the following, called OS), even if the disk space allocations in the system are unknown to each other.
FIGS. 12 (A) and (B) are explanation drawings of examples of data exchange in the prior art.
In the prior art, FTP (File Transfer Protocol Program) is well known as a data exchange system between different OSs. FIG. 12 (A) shows an example of a file exchange system using FTP 110A and 110B, which applications work independently of the OS of each computer 100A, 100B respectively.
When sending the file 130A of the computer 100A to the computer 100B, the FTP 110A sends the file data read from the file 130A stored on the disk drive 120A by using an application program interface (in the following, called API), which a user program of the computer 100A uses to FTP 110B of another computer 100B over the network 140. FTP 110B of the computer 100B which has received the data writes it to the file 130B of the disk drive l20B of the computer 100B by using the API.
This system is effective as a system receiving and sending a file between computers, whatever the kind of OS they have, but it has a drawback of a large overhead caused by data transfer over the network.
On the other hand, as a system sharing a file between plural computers using a distributed file system such as NFS(Network File System) is known. FIG. 12 (B) shows an example of the distributed file system.
The distributed file system is composed of two kinds of computers which are a server computer 200S having a file 230 and client computer 200C accessing to the file 200.
The client computer 200C sends a request to the server computer 200S, and OS 210S of the server computer 200S accesses to a file on a disk drive 220, and returns the result to OS 210C of the client computer 200C. For example, when writing into the file 230, the client computer 200C sends the data to be written to the server computer 200S over the network 240, and the server computer 200S writes the data into the file 230.
In the distributed file system like this, the file data is sent over the network 240, so that it causes a problem of a large overhead. Further, as the file operation is implemented by the OS, so that OS 210C of the client 21OC should be modified so as to cooperate with the OS 210S of the server 200S for using the user program without modification.
Generally as files are stored in a disk drive when the disk drive is connected directly to plural computers and is accessed directly by the computers which exchange or share the data with each other, the above mentioned problem caused by sending data over the network is solved. But, for sharing the data on a disk drive, it is necessary to know how each OS stores the data on the disk drive and for each computer to load the same type of OS, so that the realization is difficult between OSs made by different vendors.
FIG. 13 shows an example of a prior art system sharing the disk drive by plural computers. Each disk drive 320, the computer 300A, and the computer 300B are connected by a fast network 350, which transmits a disk protocol, called a storage area network (SAN). OS 310 A and 310B of computer 300A and 300B each can access directly to the disk drive 320B through the storing area network. Accordingly when the OS 310A and 310B are same kinds, the computer 300A and 300B can share the file on the disk drive 320, so as to implement directly input and output for the file.
But when the type of the OS 310A and the OS 310B are different type (for example, the physical organization of the file 330A, which the OS 310 A makes and manages, and the file 330B, which the OS 310B makes and manages are different), the direct access from the OS 310A of the computer 300A to the file 330B, or the direct access from the OS 310B of the computer 300B to the file 330A are impossible.
Of course, if the file system of the OS 310A is modified so as to access to the file 310B, access to the file managed by OS 310B is realized, but the modification cost is great. Further when necessity to access another file which is made of another kind, the modification for each kind of the file system is necessary, so that actual realization is impossible.
An object of the present invention is to resolve the above mentioned problem. Another object of the present invention is to quickly exchange or share a file between plural computers of different types of OSs, even if data layout on the external storing device for the file is unknown.
The present invention comprises, for sharing, transmitting or exchanging files managed by operating system between plural computers having different types of operating systems, means for extracting file locations on an external storing device independently of the file systems which are programs in the operating system managing the files, and means for sharing, transmitting and exchanging with another computer by implementing accessing to the external storing device based on the file location information by a device driver which implements an input and output to an external storing device.
A fast data exchange of the present inventions (sharing, transmitting and exchanging) between different kinds of computer is realized by means for extracting the location of the user file data stored by OS on an external storing device such as a disk drive without changing an existing file system of OS except a minimum change of the OS, device drive.
The device drive which implements inputting to and outputting from the storing device includes means executing the file access by changing the extent information, which represents a location of the file directed by a file system on the external storing device to another extent information directed in advance.
The above-mentioned means are implemented by a disk drive for an external storing device, for which the storing system on external storing device managed by another operating system is different, by changing an extent information sent from a file system to another extent information by using an exchanging table which is prepared in advance.
Further the present invention comprises means for transmitting the extent information directing the location of a file in the external storing device from a first computer to a second computer, when transferring the file from the first computer to the second computer of which the OSs are different from each other, means for copying data in the file and realizing the file transmitting by accessing directly to the external storing device based on the extent information received by the second computer.
By this, a fast file transmitting is realized without transmitting the real data only by exchanging the extent information between computers, of which storing systems for the external storing device of file are unknown.
Further the present invention provides means for requesting an extent information of a file, which another computer manages, means for gaining the extent information, and means for sharing the file by accessing directly to the external storing device, in which the file exists by using the extent information obtained from another computer.
By this, sharing directly the file data between computers of which file storing systems are unknown each other can be implemented.
Further the present invention provides means for requesting the extent information of a file, which an OS of another computer manages and obtaining the extent information, means for making a file, which an OS of this computer manages, and obtaining the extent information, and means for realizing the sharing of the file on the external storing device by changing the two extents of the information and accessing.
By this, a user program can share directly the file in the external storing device between two computers, of which the data layout for the file on the external storing device are unknown without changing the existing OS.
For realizing the above mentioned process without modifying an exiting OS or user program, an application program for an interface with a device driver implementing accessing to an external storing device with computer is comprised, and the program implements following processes. That is, processing, when receiving a request of start of extent information extracting thereafter from the data exchanging program, sending a request of start of intercept to the device driver, and gaining the extent information from the device driver to return it to the request side for the request of the gain of extracting extent information thereafter from the data exchanging program. Another processing, when receiving the request of start of extent transforming from the data exchanging program, sending a pair of extent information of the extents to transform, and making the device driver to implement the access of the transformed extent information to the device driver for the access thereafter to the external storing device.
Also, a program of a device driver implementing an access to an external storing device for a request of input and output of data from an OS of a computer is comprised and the program implements the following processes. That is, a processing storing information requesting a directed buffer area specified by request of intercept, a processing intercepting a request of input and output for the buffer area issued by the OS and storing the extent information, a processing returning the accumulated extent information to a original request (requester) for the request of extracted extent information obtaining, and a process storing a pair of the directed extent for the request of start of transforming extent information to implement the access to transformed extent based on the pair of the stored extent information in the access thereafter to the external storing device.
The above mentioned program is stored in an appropriate storing medium of a portable semiconductor memory which a computer can read and a semiconductor memory and a hard disk.
Mentioned above, the following mechanisms are realized, and the problem of the prior art is solved by the present invention.
1) An extent information extraction mechanism extracting where OS stores the user file data on the disk.
2) A mechanism sending the extent information extracted by the above mentioned extraction mechanism over a network.
3) A mechanism transferring data directly between the different extents of the disk.
4) A mechanism preparing an association table (transformation table) of the two different extents which are directed, changing a request of input and output of the extent information access corresponding to the association table.
These, together with other objects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully described and claimed hereinafter, with reference to the accompanying drawings, wherein like numerals refer to like parts throughout.